iT邦幫忙

2021 iThome 鐵人賽

DAY 6
2

大家好!

今天開始就要學習函式庫的基礎了。
我們進入今天的主題吧!


物件模板

我們先來看下方的資料:

let record;

record = {
    name: 'Felix',
    date: '2021-09-16',
    post: 1
};
record; // { name: 'Felix', date: '2021-09-16', post: 1 }

/* ... */

record = {
    name: 'Felix',
    date: '2021-10-15',
    post: 30
};
record.status = true; /* 更新挑戰狀態 */
record; // { name: 'Felix', date: '2021-10-15', post: 30, status: true }

如果要記錄 Felix 的鐵人賽發文狀態,這是最直覺的方式。
但是,每次賦值都一定要重寫物件,難道沒有像下方這樣的模板嗎?

let record;
record = new Ironman('Felix', '2021-09-16', 1);
record; // { name: 'Felix', date: '2021-09-16', post: 1 }
/* ... */

record = new Ironman('Felix', '2021-10-15', 30);
record.finish();
record; // { name: 'Felix', date: '2021-10-15', post: 30, status: true }

當然是有的,這就是接下來要介紹的建構函式。


建構函式

上方的模板能減少很多不必要的動作,也能確保物件的屬性都能保持一致。
先來學習建立建構函式:

function Ironman(n, d, p) {
    this.name = n;
    this.date = d;
    this.post = p;
}

這樣就建立完建構函式了,上方說的模板就能直接使用了!
建構函式顧名思義就是函式的一種,只是呼叫的方式要搭配 new 這個關鍵字。
至於建構函式中的 this 則是代表新的物件本身:

new Ironman('Felix', '2021-09-16', 1);
// { name: 'Felix', date: '2021-09-16', post: 1 }

是不是新的物件都有建構函式中的屬性呢?


建構函式能讓我們節省許多不必要花費的時間,但是接下來其實才是重頭戲呢!

差不多也到尾聲了。
如果對文章有任何疑問,歡迎於下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 05 - 變數宣告
下一篇
JS 07 - 原型方法
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言